local Vector3_new = Vector3.new local Vector2_new = Vector2.new local Color3_new, Color3_fromHSV = Color3.new, Color3.fromHSV local CFrame_lookAt = CFrame.lookAt local TweenService = game:GetService("TweenService") local random = Random.new() local RootPart = owner.Character.HumanoidRootPart local wait = task.wait local RefPart = Instance.new("Part") RefPart.Size = Vector3_new(.25, .25, .25) RefPart.Color = Color3_fromHSV(.05, .8, 1) RefPart.Material = Enum.Material.Neon RefPart.Shape = Enum.PartType.Ball RefPart.Anchored = true RefPart.Locked = true RefPart.CanCollide = false local RefPart2 = RefPart:Clone() RefPart2.Size = Vector3_new(.5, .5, .5) RefPart2.Transparency = .7 RefPart2.Parent = RefPart local ColorSequence_new, ColorSequenceKeypoint_new = ColorSequence.new, ColorSequenceKeypoint.new local NumberSequence_new, NumberSequenceKeypoint_new, NumberRange_new = NumberSequence.new, NumberSequenceKeypoint.new, NumberRange.new local Trail = Instance.new("Trail") Trail.FaceCamera = true Trail.LightEmission = 1 Trail.LightInfluence = 0 Trail.Transparency = NumberSequence_new( { NumberSequenceKeypoint_new(0, 0), NumberSequenceKeypoint_new(1, 1) } ) Trail.WidthScale = NumberSequence_new( { NumberSequenceKeypoint_new(0, 1), NumberSequenceKeypoint_new(1, 0) } ) Trail.Lifetime = .8 Trail.TextureLength = .1 local Attachment0 = Instance.new("Attachment", RefPart) Attachment0.Name = "Attachment0" Attachment0.Position = Vector3_new(0, .25) Trail.Attachment0 = Attachment0 local Attachment1 = Instance.new("Attachment", RefPart) Attachment1.Name = "Attachment1" Attachment1.Position = Vector3_new(0, -.25) Trail.Attachment1 = Attachment1 Trail.Parent = RefPart local Particle = Instance.new("ParticleEmitter", RefPart) Particle.LightEmission = 1 Particle.LightInfluence = 0 Particle.Size = NumberSequence_new( { NumberSequenceKeypoint_new(0, .5, .25), NumberSequenceKeypoint_new(1, .1, .1) } ) Particle.Transparency = NumberSequence_new( { NumberSequenceKeypoint_new(0, .1, .1), NumberSequenceKeypoint_new(1, .8, .2) } ) Particle.Lifetime = NumberRange_new(.5, 2) Particle.Speed = NumberRange_new(0, 1) Particle.SpreadAngle = Vector2_new(360, 360) Particle.Rate = 30 local Shells = {} local Simulating = 0 local Gravity = 10 local MassRoot, MassParticle = 50, 10 owner.Chatted:Connect(function(Said) local Amount = tonumber(Said) or 0 for i = 1, Amount do local Orb = RefPart:Clone() local Color = random:NextNumber() Orb.Color = Color3_fromHSV(Color, .6, 1) Orb.Part.Color = Color3_fromHSV(i, 1, 1) local Color = ColorSequence_new( { ColorSequenceKeypoint_new(0, Color3_fromHSV(Color, 1, 1)), ColorSequenceKeypoint_new(1, Color3_fromHSV(Color, .7, 1)) } ) Orb.ParticleEmitter.Color = Color Trail.Color = Color local Attachment0 = Orb.Attachment0 local Attachment1 = Orb.Attachment1 for i = 1, 3 do local Trail = Trail:Clone() Trail.Attachment0 = Attachment0 Trail.Attachment1 = Attachment1 Trail.Parent = RefPart end Orb.Parent = script local Radius = Vector3_new(random:NextNumber(), random:NextNumber(), random:NextNumber()).Unit * 15 local Pos = RootPart.Position + Radius Orb.Position = Pos Orb.Part.Position = Pos Shells[Orb] = CFrame_lookAt(Pos, RootPart.Position).RightVector * MassParticle * (Gravity * MassRoot / Radius.magnitude)^.5 end Simulating = Simulating + Amount print("Simulating: ", Simulating) end) local EasingStyle, EasingDirection = Enum.EasingStyle.Linear, Enum.EasingDirection.In local WaitFor = .05 local ShellTweenInfo, ShellTweenDict = TweenInfo.new( WaitFor, EasingStyle ), { Position = nil } local Beats = 0 game:GetService("RunService").Heartbeat:Connect(function(Delta) Beats = 1 / wait() end) while true do local DeltaTime = wait(WaitFor) * 10 local RootPos = RootPart.Position if Beats < 55 then WaitFor = WaitFor + .05 ShellTweenInfo = TweenInfo.new( WaitFor, EasingStyle ) elseif Beats > 56 then WaitFor = WaitFor - .05 ShellTweenInfo = TweenInfo.new( WaitFor, EasingStyle ) end for i, v in pairs(Shells) do local Pos = i.Position local Radius = Pos - RootPos local RadiusMagnitude = Radius.magnitude local Force = -Gravity * MassRoot * MassParticle * Radius.Unit / (RadiusMagnitude * RadiusMagnitude) v = v + Force * DeltaTime Shells[i] = v ShellTweenDict.Position = Pos + v * DeltaTime / MassParticle TweenService:Create(i, ShellTweenInfo, ShellTweenDict):Play() TweenService:Create(i.Part, ShellTweenInfo, ShellTweenDict):Play() end end